// 布尔类型
var bol = false;
// 十进制
var float10 = 20;
// 十六进制
var float16 = 0x14; // 4代表4，1代表1 * 16，16 + 4 = 20 
// 二进制
var float2 = 20; // 从右到左分别为：0、2、4、8、16，1的地方分别为4和16，加起来等于20
// 八进制
var float8 = 20; // 4代表4，2代表2 * 8，16 + 4 = 20
// 字符串
var str = 'Lzc';
// 数组
// 这两种的意思都一样，代表数字类型的数组，比较推荐第一种
var arr = [1, 2, 3];
var arr1 = [1, 2, 3];
// 元组：不同元素类型的数组
var arr2; // 必须按照该顺序类型赋值
arr2 = ['hello', 20];
// 枚举
var Color;
(function (Color) {
    Color[Color["Red"] = 2] = "Red";
    Color[Color["Green"] = 3] = "Green";
    Color[Color["Blue"] = 4] = "Blue";
})(Color || (Color = {}));
var colorName = Color['3']; // Green
var colorNum = Color['Red']; // 2
// any：任意类型，一旦使用any，ts就不会进行校验
var anyStr = 10;
anyStr = 'lzc';
var anyArr = [1, true, 'lzc'];
anyArr[1] = 'lqm';
// void：当一个函数没有return时，就使用void
function voidFn() {
    console.log('is void fn');
}
var voidLet = undefined; // 当void定义在变量时，值就只可以为undefined或null
var voidLet1 = null;
// undefined和null：null和undefined是所有类型的子类型，ts默认允许赋值子类型时，不报错
// 假如需要校验，可以使用命令 tsc index.js --strictNullChecks
var u = undefined;
var n = null;
var n1 = undefined;
var num = null;
// never：用于函数，不能结束的或者报错的
function neverFn(err) {
    throw new Error(err);
}
function neverFn1(err) {
    while (true) {
    }
}
create({ prop: 0 });
create(null);
// 类型断言
var type = 'this is string';
// 两种写法都是强行把any类型转化为string类型，比较推荐第二种
var typeLength = type.length;
var typeLength1 = type.length;
